#define SIMDE_TEST_X86_AVX512_INSN 4dpwssd

#include <test/x86/avx512/test-avx512.h>
#include <simde/x86/avx512/4dpwssd.h>

static int
test_simde_mm512_4dpwssd_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int32_t src[16];
    const int32_t a0[16];
    const int32_t a1[16];
    const int32_t a2[16];
    const int32_t a3[16];
    const int32_t b[4];
    const int32_t r[16];
  } test_vec[] = {
    { { -INT32_C(  1100148463),  INT32_C(  1853901119),  INT32_C(  2044082609), -INT32_C(   477201994),  INT32_C(   681824215), -INT32_C(   691225362), -INT32_C(  1484834652), -INT32_C(   221921568),
         INT32_C(   263205839),  INT32_C(   763179388),  INT32_C(   547837034), -INT32_C(  1543293491), -INT32_C(   221469180),  INT32_C(   130586723), -INT32_C(  1313978160), -INT32_C(   710708218) },
      {  INT32_C(   602166183), -INT32_C(   296721788), -INT32_C(  2096171082),  INT32_C(   824644141),  INT32_C(   455406520),  INT32_C(  1529015435),  INT32_C(   973918516), -INT32_C(   334450875),
        -INT32_C(  2028997629),  INT32_C(   209084246), -INT32_C(  2070969257),  INT32_C(  1337308822),  INT32_C(   879417769), -INT32_C(    91189818), -INT32_C(  1556767650),  INT32_C(  1334789452) },
      { -INT32_C(  1864982983),  INT32_C(  1419529469),  INT32_C(  1742220497), -INT32_C(  1934192926),  INT32_C(   767566183),  INT32_C(   203968686),  INT32_C(   967794157), -INT32_C(   611828062),
        -INT32_C(   647274788),  INT32_C(  2083391659),  INT32_C(   383977012), -INT32_C(    56452460),  INT32_C(  1764320187), -INT32_C(  1602924109),  INT32_C(  1356407982),  INT32_C(  1043095906) },
      {  INT32_C(  1796708288), -INT32_C(   739818081), -INT32_C(   521483700),  INT32_C(   534547556), -INT32_C(  1551366417),  INT32_C(   105119063), -INT32_C(  2091508447),  INT32_C(  1052869246),
        -INT32_C(  1180051174),  INT32_C(  1787662366), -INT32_C(  1085573285), -INT32_C(   203479293), -INT32_C(  2053740755), -INT32_C(  2037655195),  INT32_C(  1963647478),  INT32_C(  2125712228) },
      { -INT32_C(  1019781724),  INT32_C(  1210959085),  INT32_C(  1057519675), -INT32_C(   852301920), -INT32_C(  1286420402), -INT32_C(  1740972639),  INT32_C(   588072127), -INT32_C(  1264467953),
         INT32_C(   192403485), -INT32_C(   665607011), -INT32_C(  1122542819), -INT32_C(  1853208254), -INT32_C(  1287332591),  INT32_C(  2034990778), -INT32_C(   761505598),  INT32_C(   914767128) },
      { -INT32_C(  1287521002), -INT32_C(  1098148703),  INT32_C(   846963696), -INT32_C(    20773140) },
      {  INT32_C(  1893457071),  INT32_C(  1687491397), -INT32_C(   273821735), -INT32_C(    72978533),  INT32_C(  1795046685),  INT32_C(   485147853),  INT32_C(   899372899), -INT32_C(   114315126),
         INT32_C(  1144379574), -INT32_C(   927530077),  INT32_C(  1806572544), -INT32_C(  1770269694),  INT32_C(   962800920),  INT32_C(   285230668), -INT32_C(   467742172),  INT32_C(   846655336) } },
    { { -INT32_C(  1649342237),  INT32_C(  1226308742),  INT32_C(  1813754708),  INT32_C(   128098801),  INT32_C(  1069212574),  INT32_C(  1761494392), -INT32_C(   711296536),  INT32_C(  1658019455),
        -INT32_C(   335510426), -INT32_C(   734718080), -INT32_C(  1153412918), -INT32_C(  1883053071),  INT32_C(  1053785286), -INT32_C(  1431908926), -INT32_C(   964738746),  INT32_C(    86528671) },
      {  INT32_C(  1458645206),  INT32_C(   170534719),  INT32_C(  1774545783),  INT32_C(   351832142), -INT32_C(   967588092), -INT32_C(   613287532), -INT32_C(   643698630),  INT32_C(   434030915),
         INT32_C(   829477106),  INT32_C(  1849400055),  INT32_C(  1406599429), -INT32_C(  1922510711),  INT32_C(   743750551), -INT32_C(   284703308), -INT32_C(   121067339),  INT32_C(  1662166897) },
      {  INT32_C(  1855292023),  INT32_C(   584896540),  INT32_C(  1517663441),  INT32_C(   468245892),  INT32_C(  1296514200), -INT32_C(  1237561855),  INT32_C(  1756300534),  INT32_C(   583778731),
         INT32_C(  1603297347),  INT32_C(    42036529), -INT32_C(  1520568543),  INT32_C(  1841317332), -INT32_C(  2101737343),  INT32_C(  1295578710), -INT32_C(  1498028038), -INT32_C(   339181400) },
      {  INT32_C(   306928097), -INT32_C(   418067258), -INT32_C(  1735626301),  INT32_C(   923094198), -INT32_C(  1413890220), -INT32_C(  1342639435), -INT32_C(  2108314151),  INT32_C(   242032173),
         INT32_C(  1025554551),  INT32_C(  1210332549),  INT32_C(  1575006374),  INT32_C(  1368712700),  INT32_C(  1509707428),  INT32_C(   420082752), -INT32_C(   828678495), -INT32_C(   203617924) },
      {  INT32_C(  1177615809), -INT32_C(   644918222),  INT32_C(    20344580), -INT32_C(   112014763),  INT32_C(  1481854488), -INT32_C(   479044542),  INT32_C(   934350266), -INT32_C(   668299754),
        -INT32_C(  1105306740), -INT32_C(  1265128017),  INT32_C(  1924517149), -INT32_C(  1335162984), -INT32_C(  1760969131), -INT32_C(   713393382), -INT32_C(  1626592376),  INT32_C(  1182217914) },
      {  INT32_C(  1090819473),  INT32_C(  1626709059),  INT32_C(    30583401),  INT32_C(   112344497) },
      { -INT32_C(  1173836316),  INT32_C(  1522264557), -INT32_C(   768712038),  INT32_C(  1195733743),  INT32_C(   935772999),  INT32_C(  2086930362), -INT32_C(  1740154046), -INT32_C(  1482893640),
        -INT32_C(    75402118),  INT32_C(  1175210797), -INT32_C(   185606726),  INT32_C(  1292916603), -INT32_C(  1007298633),  INT32_C(     3414690),  INT32_C(   200556787), -INT32_C(  2007577437) } },
    { {  INT32_C(   379436028), -INT32_C(  1091889354), -INT32_C(    60950718), -INT32_C(  1086139346), -INT32_C(  1392490646),  INT32_C(  1275983331),  INT32_C(  1347346335),  INT32_C(   408289308),
        -INT32_C(   248515653),  INT32_C(  1303321098),  INT32_C(  1078529298),  INT32_C(  1275038945), -INT32_C(  1225260845), -INT32_C(  1795029515),  INT32_C(    31805668),  INT32_C(   186203216) },
      {  INT32_C(   989612079),  INT32_C(  1971825763), -INT32_C(  1699360583),  INT32_C(   803648604), -INT32_C(  1427775820), -INT32_C(   935335708), -INT32_C(  1983306696), -INT32_C(  1869290656),
        -INT32_C(  1899327189), -INT32_C(   167554755),  INT32_C(  2123413537),  INT32_C(   565016173),  INT32_C(   969642837), -INT32_C(  1291777413), -INT32_C(  1891841233), -INT32_C(   652226130) },
      { -INT32_C(  1620514462),  INT32_C(  1553296186), -INT32_C(  1847974620), -INT32_C(   239958116), -INT32_C(  1792377318), -INT32_C(  1219941496), -INT32_C(  1538816522), -INT32_C(  1199675818),
        -INT32_C(  1973950896),  INT32_C(  1978068049), -INT32_C(  1375289326),  INT32_C(  1654634824), -INT32_C(  1074214601), -INT32_C(   344505868),  INT32_C(   495959750),  INT32_C(  1960119588) },
      {  INT32_C(  1174351347),  INT32_C(   733668633), -INT32_C(   287719002), -INT32_C(  1320126342),  INT32_C(   913328193),  INT32_C(  1344399241), -INT32_C(   898781019), -INT32_C(  1321319746),
        -INT32_C(  1980351121), -INT32_C(   910905053), -INT32_C(   323514766),  INT32_C(  1218250502), -INT32_C(   646050480), -INT32_C(  1708548107),  INT32_C(   224695887),  INT32_C(  1220518873) },
      {  INT32_C(    64075232), -INT32_C(   657684890),  INT32_C(   449086228), -INT32_C(   614309493),  INT32_C(  1689575535), -INT32_C(   805380481),  INT32_C(  1306289012), -INT32_C(   426337530),
        -INT32_C(  1209374895),  INT32_C(    26261229), -INT32_C(   987999174),  INT32_C(   631275190), -INT32_C(   561425313), -INT32_C(  1481799886), -INT32_C(   252409110),  INT32_C(  1993837093) },
      { -INT32_C(   550583822), -INT32_C(  1310605705), -INT32_C(   931726062), -INT32_C(   621996421) },
      {  INT32_C(  1306916441), -INT32_C(  1157758729),  INT32_C(   396079240),  INT32_C(  1241257201), -INT32_C(  1454350047),  INT32_C(   988515018), -INT32_C(  1932247157),  INT32_C(  2102636848),
         INT32_C(  1158098244),  INT32_C(   191666118),  INT32_C(  1092655398), -INT32_C(   120428489),  INT32_C(   617886679),  INT32_C(  1780417690),  INT32_C(   548988535), -INT32_C(   347241123) } },
    { { -INT32_C(  1648789909), -INT32_C(   398170370),  INT32_C(   383334896), -INT32_C(  1249070909), -INT32_C(   392840591), -INT32_C(  1952811400), -INT32_C(   296546189), -INT32_C(  1832304345),
        -INT32_C(  1255177545), -INT32_C(   643926808),  INT32_C(  1894741933), -INT32_C(  1742308569), -INT32_C(  1367295178), -INT32_C(  1539761615),  INT32_C(  1385336107), -INT32_C(  2048631858) },
      { -INT32_C(   969206819),  INT32_C(   882891143),  INT32_C(  2007338576),  INT32_C(  1057999625), -INT32_C(  1209102458), -INT32_C(   715446358), -INT32_C(  2111312460),  INT32_C(   638061385),
        -INT32_C(  1494465762),  INT32_C(  1826261788),  INT32_C(   602111769), -INT32_C(   798821814),  INT32_C(   730288257),  INT32_C(   738255480),  INT32_C(   430909392),  INT32_C(  1363130162) },
      {  INT32_C(   385297658), -INT32_C(   779955785), -INT32_C(  1678482095), -INT32_C(   663988649),  INT32_C(   520418215), -INT32_C(  1505033002),  INT32_C(  1589639724), -INT32_C(  1414529359),
        -INT32_C(   490625494), -INT32_C(   910998664), -INT32_C(    10180696), -INT32_C(  1529294595), -INT32_C(  1698439996),  INT32_C(   205524960), -INT32_C(  1150550263),  INT32_C(   677780221) },
      {  INT32_C(   956967105),  INT32_C(   335723883),  INT32_C(  1628661348), -INT32_C(    83432649), -INT32_C(  1466578489), -INT32_C(   491465256), -INT32_C(   778231852), -INT32_C(    67566790),
        -INT32_C(  1758198997),  INT32_C(   615200448), -INT32_C(   746144100),  INT32_C(  1909361834),  INT32_C(   773415765),  INT32_C(   202427960),  INT32_C(   668904941), -INT32_C(   601696336) },
      { -INT32_C(  1686939941),  INT32_C(   700456588), -INT32_C(  2030287140),  INT32_C(   670616530),  INT32_C(  1733628206), -INT32_C(   848075297), -INT32_C(  1007398638),  INT32_C(    77535017),
        -INT32_C(    90238355),  INT32_C(   203644720),  INT32_C(  2006130597),  INT32_C(   429886442),  INT32_C(  2088826012),  INT32_C(  1816785754),  INT32_C(  1848589637), -INT32_C(  1032663468) },
      {  INT32_C(   280760800),  INT32_C(   371056497), -INT32_C(   376524546), -INT32_C(   687723205) },
      {  INT32_C(  2124663838), -INT32_C(  1254947481),  INT32_C(  1032389311), -INT32_C(  1082895409), -INT32_C(  1528194733),  INT32_C(  1337207260), -INT32_C(   890836357),  INT32_C(  1241700779),
        -INT32_C(   388687182),  INT32_C(  1391176999), -INT32_C(   458522355),  INT32_C(  1537477269), -INT32_C(  2054069089), -INT32_C(  1954919772),  INT32_C(  1475788759),  INT32_C(   679800115) } },
    { {  INT32_C(  2069070369), -INT32_C(  1159160715),  INT32_C(   774379482), -INT32_C(   957310234),  INT32_C(   500673708), -INT32_C(  1976306549), -INT32_C(   546061916),  INT32_C(   280393198),
         INT32_C(  1821051639), -INT32_C(  2144898138),  INT32_C(  1907314571), -INT32_C(  1774739478), -INT32_C(   676131252), -INT32_C(  1503533566), -INT32_C(  1769614168),  INT32_C(  1084636233) },
      { -INT32_C(   324193722),  INT32_C(   812504229),  INT32_C(   228662307),  INT32_C(   128178619), -INT32_C(   354461977), -INT32_C(   443531203),  INT32_C(  1585124885), -INT32_C(  1734401454),
        -INT32_C(   108770220),  INT32_C(  1126887712), -INT32_C(   917386483), -INT32_C(  1932462940), -INT32_C(  2005487797),  INT32_C(    91031280),  INT32_C(  1852041244),  INT32_C(  1577452042) },
      {  INT32_C(  1851296590), -INT32_C(  1968012676), -INT32_C(   229440691),  INT32_C(  1115562999), -INT32_C(  1010109229),  INT32_C(   398997498),  INT32_C(   713370400),  INT32_C(  2089389102),
        -INT32_C(  1813257961), -INT32_C(  1340236445), -INT32_C(  1750962016),  INT32_C(  1742348436),  INT32_C(   254452756), -INT32_C(    64556324),  INT32_C(  1260825373),  INT32_C(  1321774903) },
      { -INT32_C(   203246704), -INT32_C(   257622192),  INT32_C(    75974256),  INT32_C(  2070634855), -INT32_C(   494234362), -INT32_C(  1528909689), -INT32_C(  1812986788),  INT32_C(  1155709108),
        -INT32_C(  1153907605),  INT32_C(   866901187), -INT32_C(  1992871390), -INT32_C(  1710906732), -INT32_C(  1099133129), -INT32_C(  1671210432),  INT32_C(   305091422),  INT32_C(  1985417483) },
      { -INT32_C(  1724805163), -INT32_C(  1915954069), -INT32_C(  1575549938), -INT32_C(   566485850), -INT32_C(   342050645),  INT32_C(  1904738066),  INT32_C(  1568913234), -INT32_C(  1630283064),
        -INT32_C(   734591895), -INT32_C(   278789152), -INT32_C(  1366198009),  INT32_C(  1082969749), -INT32_C(  1725159290),  INT32_C(  2047521576),  INT32_C(   869829994), -INT32_C(   774788248) },
      { -INT32_C(  1868166992),  INT32_C(   327092235),  INT32_C(   381751681),  INT32_C(  1700154847) },
      { -INT32_C(  1425490233), -INT32_C(  1899508923), -INT32_C(  1812047491),  INT32_C(   709857869),  INT32_C(  1457439950),  INT32_C(  1496245983),  INT32_C(  1604848601),  INT32_C(  1179223891),
        -INT32_C(  1808532518), -INT32_C(   696267086), -INT32_C(   708541624), -INT32_C(  1902783242),  INT32_C(  1684587179), -INT32_C(  1393355237),  INT32_C(   625875422), -INT32_C(  1125730195) } },
    { { -INT32_C(  1644264843), -INT32_C(  1609037770), -INT32_C(    19664746),  INT32_C(  1271899291), -INT32_C(  1193511508), -INT32_C(    20227203),  INT32_C(  1259637868),  INT32_C(  1320250329),
         INT32_C(   602714093),  INT32_C(  1321469112), -INT32_C(  1890805772), -INT32_C(   388293828),  INT32_C(   245413777),  INT32_C(  2131585810), -INT32_C(   792059401),  INT32_C(  2048883596) },
      { -INT32_C(   476247253),  INT32_C(    53567759),  INT32_C(   898792953),  INT32_C(   689794456),  INT32_C(   926465572),  INT32_C(   565593385), -INT32_C(   202276762),  INT32_C(   661459196),
         INT32_C(   705301019),  INT32_C(  1697463148),  INT32_C(  1352319160),  INT32_C(  1383773997), -INT32_C(  1618365835),  INT32_C(  1572880375), -INT32_C(  1152339521), -INT32_C(   572342846) },
      {  INT32_C(   873000136), -INT32_C(   543607513),  INT32_C(   590361589),  INT32_C(  1618324202),  INT32_C(  1409285724), -INT32_C(    55525571),  INT32_C(   850919792), -INT32_C(  2045732162),
        -INT32_C(  1363535737),  INT32_C(  1133400909),  INT32_C(  1902558854), -INT32_C(   992879768),  INT32_C(   370659545), -INT32_C(    15546481), -INT32_C(  2026714424), -INT32_C(   334675355) },
      { -INT32_C(  1483028390), -INT32_C(  1561712613),  INT32_C(  1309888742),  INT32_C(    68346923),  INT32_C(  1125788084), -INT32_C(  1186845199),  INT32_C(  1547728119),  INT32_C(   273174198),
         INT32_C(   834200342), -INT32_C(   221011445),  INT32_C(   507569907),  INT32_C(  2116244426),  INT32_C(  1841380732),  INT32_C(  1646724202),  INT32_C(   801007480), -INT32_C(   885061707) },
      { -INT32_C(   167905302), -INT32_C(  1914187622), -INT32_C(  2119489353), -INT32_C(   150942085),  INT32_C(  1986380044),  INT32_C(  1054379205), -INT32_C(  1452435469), -INT32_C(  2005619554),
         INT32_C(  1048408484), -INT32_C(   104110782),  INT32_C(   142243469),  INT32_C(  1375697477),  INT32_C(    29844540), -INT32_C(   465592080), -INT32_C(   712135625), -INT32_C(    44236455) },
      { -INT32_C(  1254368653), -INT32_C(   861010369), -INT32_C(  1043060612), -INT32_C(   552414045) },
      { -INT32_C(  2096224540), -INT32_C(  1398322017), -INT32_C(   694792845),  INT32_C(    31944588), -INT32_C(  1110118864),  INT32_C(   170313719),  INT32_C(  1363683764),  INT32_C(  1757163491),
         INT32_C(  1726283270), -INT32_C(   314170218), -INT32_C(   165627053),  INT32_C(  1884876188),  INT32_C(   978823045), -INT32_C(   758526260), -INT32_C(  1844853580),  INT32_C(   267322666) } },
    { {  INT32_C(   702601784), -INT32_C(  1324539782),  INT32_C(   629578444),  INT32_C(   237167515), -INT32_C(    37528131), -INT32_C(   523669149),  INT32_C(  1034002074), -INT32_C(  1440959374),
         INT32_C(   148110478), -INT32_C(   373694436),  INT32_C(   370032506), -INT32_C(   551276254), -INT32_C(   220403570), -INT32_C(   204298663), -INT32_C(  1238338748), -INT32_C(  1251980249) },
      {  INT32_C(  1706898505), -INT32_C(  1890683372), -INT32_C(   677028427),  INT32_C(   481806734),  INT32_C(   185504689),  INT32_C(  2113855545),  INT32_C(  2066952020), -INT32_C(  1003383685),
        -INT32_C(   601166136),  INT32_C(   443250789),  INT32_C(  1676808405), -INT32_C(  1954502182),  INT32_C(  1989578300), -INT32_C(  1007446673),  INT32_C(  1061038020), -INT32_C(  2096861253) },
      { -INT32_C(  1017172386),  INT32_C(  2094910374), -INT32_C(  1243623461), -INT32_C(  1254006920),  INT32_C(  1563154414),  INT32_C(   807411308),  INT32_C(     7364165),  INT32_C(   746812622),
         INT32_C(  1223680930), -INT32_C(  1983591250),  INT32_C(   339715228), -INT32_C(   238452733), -INT32_C(  1001458601),  INT32_C(  1492413971), -INT32_C(  1688640307),  INT32_C(  2059918552) },
      {  INT32_C(  1841542847),  INT32_C(   519538562),  INT32_C(   791885355),  INT32_C(   220265654),  INT32_C(    80834545), -INT32_C(  1436760355),  INT32_C(    54900010),  INT32_C(  1367149714),
         INT32_C(  1170161858), -INT32_C(   211568952), -INT32_C(  1574791444), -INT32_C(  2068888685), -INT32_C(  1886879310),  INT32_C(  1899684935),  INT32_C(   745832346),  INT32_C(  1316876940) },
      { -INT32_C(    91014094), -INT32_C(   554764302),  INT32_C(   545263757),  INT32_C(    94646355), -INT32_C(   124441423), -INT32_C(  1419129071), -INT32_C(   623387058),  INT32_C(    36263120),
        -INT32_C(  2080523119),  INT32_C(  1097001907),  INT32_C(  1331815163), -INT32_C(  1017903598),  INT32_C(  1136388402),  INT32_C(   133047736), -INT32_C(   740178685), -INT32_C(  1412101606) },
      {  INT32_C(  2049888967), -INT32_C(  1178890051), -INT32_C(  2063065741),  INT32_C(  1430871075) },
      { -INT32_C(  1576554490),  INT32_C(  1130601863), -INT32_C(  1679317811),  INT32_C(  1199250850),  INT32_C(   528150953), -INT32_C(  1623480570), -INT32_C(   584083810),  INT32_C(  1500924057),
        -INT32_C(  1309908607), -INT32_C(   518161622), -INT32_C(   669186506), -INT32_C(  1062160141),  INT32_C(  1668489060),  INT32_C(  1406593621), -INT32_C(  1256096436),  INT32_C(   873108893) } },
    { { -INT32_C(    23526330),  INT32_C(   738559785),  INT32_C(  1744824141), -INT32_C(  1206725135),  INT32_C(  1697857703),  INT32_C(  1142877905),  INT32_C(   784934411), -INT32_C(   930868606),
         INT32_C(  1086790935), -INT32_C(   244462428), -INT32_C(  1520931661), -INT32_C(   379753919),  INT32_C(  2085523627), -INT32_C(  1967100801),  INT32_C(   347703698), -INT32_C(  1277346404) },
      { -INT32_C(    17587110),  INT32_C(   619733104),  INT32_C(   248072397),  INT32_C(  1593255603),  INT32_C(   920274359),  INT32_C(  1136695985), -INT32_C(  1084720861),  INT32_C(   275920310),
         INT32_C(  1225746137), -INT32_C(  1821507642), -INT32_C(    90032569),  INT32_C(   341350749), -INT32_C(  1874185505), -INT32_C(   254539060),  INT32_C(   984558724),  INT32_C(   978002529) },
      {  INT32_C(  1317231240), -INT32_C(  1595739815), -INT32_C(  2070182873), -INT32_C(    57085155), -INT32_C(   225582554),  INT32_C(  1910661613), -INT32_C(   290745715),  INT32_C(  1009317556),
        -INT32_C(  1450529968), -INT32_C(  1001755492),  INT32_C(   239658480), -INT32_C(    32841256), -INT32_C(  1326344253), -INT32_C(  2061380616),  INT32_C(   427019621),  INT32_C(   341154755) },
      { -INT32_C(   474095545),  INT32_C(  1034356556), -INT32_C(   984878868), -INT32_C(  1799137839), -INT32_C(   448416531), -INT32_C(   311728504), -INT32_C(   150479309), -INT32_C(  1056220038),
        -INT32_C(  1985689540), -INT32_C(  1127854896),  INT32_C(   226562364),  INT32_C(  1403077990), -INT32_C(  2126911751), -INT32_C(  2140167091), -INT32_C(    59279742),  INT32_C(   264078034) },
      {  INT32_C(   462971467), -INT32_C(   354984274), -INT32_C(   705210001), -INT32_C(  1758881634), -INT32_C(   870751617), -INT32_C(  2008250362), -INT32_C(   796539650), -INT32_C(  1847639482),
         INT32_C(  1387034532),  INT32_C(  1144816853),  INT32_C(  2065314781),  INT32_C(  1259488204), -INT32_C(  1424544859), -INT32_C(  1322032205),  INT32_C(  1854060583), -INT32_C(  1610653189) },
      { -INT32_C(  1359827751),  INT32_C(   234040880),  INT32_C(   780668258), -INT32_C(   176580016) },
      { -INT32_C(    31367985),  INT32_C(  1679230073),  INT32_C(   962128907), -INT32_C(   779858416),  INT32_C(   954582441),  INT32_C(  1784652151), -INT32_C(  1450057917), -INT32_C(   258265955),
         INT32_C(  1799037981),  INT32_C(   510401450),  INT32_C(  1798839633), -INT32_C(  1348553251), -INT32_C(   960277757), -INT32_C(   581802848),  INT32_C(  1202308689),  INT32_C(  2050199441) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i src = simde_mm512_loadu_epi32(test_vec[i].src);
    simde__m512i a0 = simde_mm512_loadu_epi32(test_vec[i].a0);
    simde__m512i a1 = simde_mm512_loadu_epi32(test_vec[i].a1);
    simde__m512i a2 = simde_mm512_loadu_epi32(test_vec[i].a2);
    simde__m512i a3 = simde_mm512_loadu_epi32(test_vec[i].a3);
    simde__m128i b = simde_x_mm_loadu_epi32(test_vec[i].b);
    simde__m512i r = simde_mm512_4dpwssd_epi32(src, a0, a1, a2, a3, &b);
    simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i src = simde_test_x86_random_i32x16();
    simde__m512i a0 = simde_test_x86_random_i32x16();
    simde__m512i a1 = simde_test_x86_random_i32x16();
    simde__m512i a2 = simde_test_x86_random_i32x16();
    simde__m512i a3 = simde_test_x86_random_i32x16();
    simde__m128i b = simde_test_x86_random_i32x4();
    simde__m512i r = simde_mm512_4dpwssd_epi32(src, a0, a1, a2, a3, &b);

    simde_test_x86_write_i32x16(2, src, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i32x16(2, a0, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a1, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a2, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a3, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_mask_4dpwssd_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int32_t src[16];
    const simde__mmask16 k;
    const int32_t a0[16];
    const int32_t a1[16];
    const int32_t a2[16];
    const int32_t a3[16];
    const int32_t b[4];
    const int32_t r[16];
  } test_vec[] = {
    { {  INT32_C(  2040565958),  INT32_C(   455857139), -INT32_C(  2021020276), -INT32_C(   416905202),  INT32_C(  1687558196), -INT32_C(  1452177081), -INT32_C(   422053482),  INT32_C(  1524322452),
        -INT32_C(   741114912), -INT32_C(   621871538), -INT32_C(  1168017493),  INT32_C(   883001344), -INT32_C(   409389152),  INT32_C(  1452280512), -INT32_C(  1740871932), -INT32_C(  1745741897) },
      UINT16_C(50578),
      {  INT32_C(  1506074987),  INT32_C(   500264891), -INT32_C(   878325463), -INT32_C(  1644018427), -INT32_C(  1112947923),  INT32_C(  1445309721),  INT32_C(   929946693), -INT32_C(   537132940),
        -INT32_C(  1674002207),  INT32_C(  1505298736), -INT32_C(   534487334), -INT32_C(   780261468),  INT32_C(    59647978),  INT32_C(   425309140),  INT32_C(    72402832), -INT32_C(  1461498425) },
      {  INT32_C(  1027873549), -INT32_C(     6816219),  INT32_C(    14662492), -INT32_C(   858693918),  INT32_C(  1523605637), -INT32_C(  1552733933), -INT32_C(  1213741840),  INT32_C(   509577745),
        -INT32_C(   883120986), -INT32_C(    20253790), -INT32_C(  1845515602), -INT32_C(  1923231736),  INT32_C(  1156001072),  INT32_C(  1206344535),  INT32_C(   822054687), -INT32_C(  1085383143) },
      { -INT32_C(  1534416382),  INT32_C(  1285772701),  INT32_C(   131965695), -INT32_C(  1550566798), -INT32_C(  1075348376), -INT32_C(   167325993),  INT32_C(  1998980445),  INT32_C(  1714844772),
        -INT32_C(  1140080353),  INT32_C(   352890390), -INT32_C(  1038293680), -INT32_C(  2006601696),  INT32_C(    55004204),  INT32_C(  2029604123), -INT32_C(  1209065645), -INT32_C(  1289935212) },
      { -INT32_C(    43046681),  INT32_C(   638744790),  INT32_C(  2112433757),  INT32_C(   184897246), -INT32_C(  1240576869), -INT32_C(   315750246), -INT32_C(  1146872281),  INT32_C(   728678724),
        -INT32_C(  1071063318), -INT32_C(  1276691882),  INT32_C(  1177669736), -INT32_C(  1185860066),  INT32_C(   493838467), -INT32_C(  1895129496),  INT32_C(     4959932),  INT32_C(  1496037743) },
      { -INT32_C(   317041769), -INT32_C(   173997683), -INT32_C(   281292079), -INT32_C(  1951822584) },
      {  INT32_C(  2040565958),  INT32_C(   860212987), -INT32_C(  2021020276), -INT32_C(   416905202),  INT32_C(  1840970705), -INT32_C(  1452177081), -INT32_C(   422053482),  INT32_C(  1496398148),
         INT32_C(  2131739329), -INT32_C(   621871538),  INT32_C(   218535548),  INT32_C(   883001344), -INT32_C(   409389152),  INT32_C(  1452280512),  INT32_C(  1863674573),  INT32_C(  2016566140) } },
    { {  INT32_C(  1437079789),  INT32_C(  1927590582), -INT32_C(   797823136), -INT32_C(  2144756247),  INT32_C(  2104378352),  INT32_C(   359796548), -INT32_C(   385503519),  INT32_C(   678800955),
         INT32_C(  2105351622),  INT32_C(   820994512),  INT32_C(  2046845585), -INT32_C(   252040449), -INT32_C(  1301452691),  INT32_C(  1489494135), -INT32_C(   918369138),  INT32_C(  1106360186) },
      UINT16_C(28372),
      { -INT32_C(  1378900802), -INT32_C(   720412459), -INT32_C(   704704550),  INT32_C(  1815965183), -INT32_C(   431180513),  INT32_C(  1337186829), -INT32_C(  1811534429),  INT32_C(   738384750),
         INT32_C(  1423626879),  INT32_C(   220916018), -INT32_C(   136173064), -INT32_C(  1251729514), -INT32_C(   493047596),  INT32_C(   774983563), -INT32_C(   339527556), -INT32_C(  1843935981) },
      { -INT32_C(   890769001), -INT32_C(   740879909), -INT32_C(   775177926), -INT32_C(  1383714856),  INT32_C(  1787765471), -INT32_C(   291913615),  INT32_C(   198794488), -INT32_C(  1180766175),
        -INT32_C(  1115453982), -INT32_C(   795845994), -INT32_C(   341746925),  INT32_C(  1788356746), -INT32_C(  1126946998), -INT32_C(   525701656), -INT32_C(   336821303),  INT32_C(  1436846707) },
      { -INT32_C(  1525537009), -INT32_C(  1804229759), -INT32_C(  1988159490), -INT32_C(  1980557249),  INT32_C(   658884415), -INT32_C(    32968907), -INT32_C(   420875150), -INT32_C(  1925476994),
         INT32_C(   892489396), -INT32_C(   271996943), -INT32_C(    42448450), -INT32_C(  1601737887),  INT32_C(  1757989939),  INT32_C(   778490044),  INT32_C(  1108627652), -INT32_C(  1831907107) },
      { -INT32_C(  1882783330),  INT32_C(  1736348072),  INT32_C(   996472794), -INT32_C(  1780749470),  INT32_C(  1962779576),  INT32_C(   933389427), -INT32_C(  1854294092), -INT32_C(  1524414457),
        -INT32_C(   231412919),  INT32_C(  1448718972),  INT32_C(   210877865),  INT32_C(  1637969065), -INT32_C(  2083152112), -INT32_C(  1212451069),  INT32_C(   893924398), -INT32_C(   958763907) },
      { -INT32_C(   742912425),  INT32_C(  1781076417),  INT32_C(  2021046991),  INT32_C(   920197158) },
      {  INT32_C(  1437079789),  INT32_C(  1927590582), -INT32_C(     7097305), -INT32_C(  2144756247),  INT32_C(  1455571827),  INT32_C(   359796548), -INT32_C(  1652561201),  INT32_C(  1445552822),
         INT32_C(  2105351622), -INT32_C(   836265486), -INT32_C(   789504247), -INT32_C(   690919312), -INT32_C(  1301452691),  INT32_C(  2022773360),  INT32_C(   878609001),  INT32_C(  1106360186) } },
    { { -INT32_C(  1162170697),  INT32_C(  1416721701),  INT32_C(   646560169),  INT32_C(  2095932453),  INT32_C(   860857714), -INT32_C(  2036434761),  INT32_C(  1509823538), -INT32_C(   477112532),
        -INT32_C(  1432532603),  INT32_C(  1761480382), -INT32_C(   309425976),  INT32_C(  1584036844), -INT32_C(   661472991),  INT32_C(  1683894322),  INT32_C(  1908235332), -INT32_C(  1202434765) },
      UINT16_C(62102),
      {  INT32_C(  1627411810),  INT32_C(  1273612477),  INT32_C(   549967286), -INT32_C(   975574989),  INT32_C(   519375808),  INT32_C(   762985072), -INT32_C(     8737365), -INT32_C(   940502683),
         INT32_C(   589886054),  INT32_C(  1886261690),  INT32_C(   445658598), -INT32_C(   572560867), -INT32_C(   436480651), -INT32_C(  1173129969), -INT32_C(  2017882846),  INT32_C(    72330142) },
      {  INT32_C(  1462204317),  INT32_C(  1875416713), -INT32_C(   376874805),  INT32_C(   952527298),  INT32_C(  1293795902),  INT32_C(  1510420535),  INT32_C(  1558298814),  INT32_C(   140587115),
         INT32_C(   828410024), -INT32_C(   358602722),  INT32_C(  1137912448), -INT32_C(   780428909), -INT32_C(  1826711461), -INT32_C(  2014501431),  INT32_C(  1373884133), -INT32_C(  1487321857) },
      { -INT32_C(   338118195),  INT32_C(  1658157281),  INT32_C(   900049058), -INT32_C(  1660542910), -INT32_C(  2127551304),  INT32_C(   789060937), -INT32_C(   343872276), -INT32_C(    40707792),
         INT32_C(  1961454227), -INT32_C(  2049523998), -INT32_C(  1447396505),  INT32_C(  1413923227),  INT32_C(   802519013), -INT32_C(  2141266284), -INT32_C(    93593910),  INT32_C(  1257831863) },
      {  INT32_C(  1254089063),  INT32_C(   114267551), -INT32_C(  1397782255),  INT32_C(   805369418),  INT32_C(    23058029),  INT32_C(  2122497460),  INT32_C(  1383656859),  INT32_C(  1386049771),
        -INT32_C(   241410991),  INT32_C(    49769457),  INT32_C(  1068476405),  INT32_C(   175091613),  INT32_C(   957075077),  INT32_C(   649563531),  INT32_C(  1719218299), -INT32_C(   222816608) },
      {  INT32_C(  1675842930), -INT32_C(  1251550528),  INT32_C(   519378305),  INT32_C(  1244161220) },
      { -INT32_C(  1162170697),  INT32_C(   971792663),  INT32_C(  1252457442),  INT32_C(  2095932453), -INT32_C(  1282752375), -INT32_C(  2036434761),  INT32_C(  1509823538), -INT32_C(  1249627999),
        -INT32_C(  1432532603), -INT32_C(   314579870), -INT32_C(   309425976),  INT32_C(  1584036844), -INT32_C(  2052621779), -INT32_C(  2035534325), -INT32_C(  1908017994), -INT32_C(   460353350) } },
    { { -INT32_C(  1098697677),  INT32_C(  1021656001),  INT32_C(   195190379), -INT32_C(   419603596),  INT32_C(  1883889840),  INT32_C(  1009168315), -INT32_C(  1990517820), -INT32_C(  1294761089),
         INT32_C(  2037470903), -INT32_C(    55224687),  INT32_C(   671635636),  INT32_C(  1661863347), -INT32_C(  1579984922), -INT32_C(   874645241), -INT32_C(  1806419948),  INT32_C(  1933977532) },
      UINT16_C(46974),
      { -INT32_C(  1576202260),  INT32_C(   351977740), -INT32_C(   149312023), -INT32_C(   481296624),  INT32_C(  2128434848),  INT32_C(  1991700769), -INT32_C(   862096763), -INT32_C(   763159578),
         INT32_C(   930386219),  INT32_C(  1011576402),  INT32_C(   724788251),  INT32_C(    68125284), -INT32_C(    92082984),  INT32_C(  1668299229), -INT32_C(  1859187285),  INT32_C(  1415885353) },
      { -INT32_C(  1769220029),  INT32_C(  1657984583), -INT32_C(  1634859718),  INT32_C(  1621335432),  INT32_C(  1717183881),  INT32_C(   180996702),  INT32_C(    26999000), -INT32_C(   296353877),
         INT32_C(   528802008), -INT32_C(   259959114), -INT32_C(   460386468),  INT32_C(   893661868), -INT32_C(  1231249577),  INT32_C(  1103127913),  INT32_C(   155343710),  INT32_C(   871864155) },
      {  INT32_C(   760380535),  INT32_C(   773772242), -INT32_C(  1894601245),  INT32_C(   918902751),  INT32_C(  1609327094),  INT32_C(   614575302),  INT32_C(  1663951624), -INT32_C(   225041029),
         INT32_C(  1931536545), -INT32_C(  1633534277), -INT32_C(   902908693),  INT32_C(    16839435),  INT32_C(   442625364), -INT32_C(  1589706087),  INT32_C(  1610902757),  INT32_C(   844339857) },
      {  INT32_C(  1051095938), -INT32_C(  1663285071),  INT32_C(   140905212),  INT32_C(  1359570685), -INT32_C(   311661997),  INT32_C(  1385081708), -INT32_C(  1447914729), -INT32_C(  1327823571),
         INT32_C(   703496568), -INT32_C(   960116023), -INT32_C(   758240299), -INT32_C(   450570350), -INT32_C(  1361932222),  INT32_C(  1375756603),  INT32_C(   570143732),  INT32_C(   835835832) },
      {  INT32_C(   576372568),  INT32_C(  1609048202), -INT32_C(   583944629), -INT32_C(   809282163) },
      { -INT32_C(  1098697677),  INT32_C(  1466954739),  INT32_C(  1196529139), -INT32_C(  1569783972), -INT32_C(   449635307), -INT32_C(   391333491), -INT32_C(   402338280), -INT32_C(  1294761089),
        -INT32_C(   705639127), -INT32_C(   663447195), -INT32_C(  1200988392),  INT32_C(  1661863347),  INT32_C(  1331547471),  INT32_C(  1894089839), -INT32_C(  1806419948), -INT32_C(   238903297) } },
    { {  INT32_C(   545166821), -INT32_C(   361529610), -INT32_C(   368284111), -INT32_C(  1642341051),  INT32_C(   666924445), -INT32_C(   511268715), -INT32_C(   339822754), -INT32_C(   222592755),
         INT32_C(   219363607), -INT32_C(   369588553),  INT32_C(   986907892),  INT32_C(  2128146145), -INT32_C(   106588061), -INT32_C(  1629869248), -INT32_C(   259417885),  INT32_C(   836912154) },
      UINT16_C(62845),
      {  INT32_C(   914044222), -INT32_C(   247828450), -INT32_C(  2099307350),  INT32_C(  1075462810),  INT32_C(   359356987), -INT32_C(  2119282952),  INT32_C(   566675518),  INT32_C(   924206073),
        -INT32_C(  1771138440), -INT32_C(  1400395774),  INT32_C(  1596876484), -INT32_C(   459323223), -INT32_C(  1694889310), -INT32_C(  1759795111),  INT32_C(  1773724016), -INT32_C(  1650405595) },
      {  INT32_C(  1664355937),  INT32_C(  2064628663), -INT32_C(   874889950),  INT32_C(   665811333), -INT32_C(   574510716), -INT32_C(  1049306031), -INT32_C(   483775042),  INT32_C(  1568721916),
        -INT32_C(  1866418983), -INT32_C(  1844654224), -INT32_C(  1856117236), -INT32_C(   457700256),  INT32_C(   130120118),  INT32_C(   331953493),  INT32_C(  1593242466), -INT32_C(  1732544578) },
      { -INT32_C(  1691845845),  INT32_C(  1445803082),  INT32_C(  2078771739),  INT32_C(  1298112407),  INT32_C(  1851007000), -INT32_C(  1199497899), -INT32_C(   820611055),  INT32_C(   443011823),
        -INT32_C(  1732865971), -INT32_C(   537992252),  INT32_C(    89839214), -INT32_C(  1907181195),  INT32_C(   805086937), -INT32_C(   706249276), -INT32_C(   458949131),  INT32_C(   503254223) },
      {  INT32_C(  1622521244),  INT32_C(   104899480), -INT32_C(   284452231),  INT32_C(   763190612), -INT32_C(   933463804), -INT32_C(   325237770),  INT32_C(   282083649), -INT32_C(   382873779),
         INT32_C(   491446916), -INT32_C(    14447994),  INT32_C(  2028875556), -INT32_C(  1868141684), -INT32_C(   614989084), -INT32_C(  2016938682), -INT32_C(  2070440137), -INT32_C(   345062041) },
      {  INT32_C(   755546279),  INT32_C(  1714236482), -INT32_C(   404808869),  INT32_C(  1803060615) },
      {  INT32_C(   161996097), -INT32_C(   361529610), -INT32_C(  1860142463),  INT32_C(  1792623033),  INT32_C(   348714542),  INT32_C(   469150906), -INT32_C(  1172062604), -INT32_C(   222592755),
         INT32_C(   521138939), -INT32_C(   369588553), -INT32_C(   972721255),  INT32_C(  2128146145), -INT32_C(   886346490),  INT32_C(  1989314877),  INT32_C(    27967130), -INT32_C(  1052424451) } },
    { { -INT32_C(   850997113), -INT32_C(    44823098),  INT32_C(   209841317),  INT32_C(  1492643761), -INT32_C(   377093977), -INT32_C(  2024754388),  INT32_C(  1433284558),  INT32_C(  1002563252),
         INT32_C(  2097743799), -INT32_C(  1166385899), -INT32_C(    87622839), -INT32_C(  1840005653), -INT32_C(   377693763),  INT32_C(  1517341836), -INT32_C(  1347362821),  INT32_C(  2095739333) },
      UINT16_C(62328),
      {  INT32_C(  1934724601),  INT32_C(   225417799), -INT32_C(   389326187),  INT32_C(  1757513964), -INT32_C(   499888782),  INT32_C(  1472278439), -INT32_C(   909604898), -INT32_C(    37994237),
         INT32_C(   376442318),  INT32_C(  1025761192),  INT32_C(   640020025), -INT32_C(   376510857), -INT32_C(   624180429), -INT32_C(   785216014),  INT32_C(   396032532),  INT32_C(   169104955) },
      {  INT32_C(   203457892), -INT32_C(  1639365788), -INT32_C(  1446744526), -INT32_C(  2020453804),  INT32_C(   140598549), -INT32_C(    19295254), -INT32_C(   921275506),  INT32_C(   768813769),
         INT32_C(   339342255),  INT32_C(  1773306423),  INT32_C(  1142060784), -INT32_C(   557079352), -INT32_C(   320459519),  INT32_C(  1324007360), -INT32_C(    82313166), -INT32_C(   634787029) },
      {  INT32_C(   384721631), -INT32_C(   713056027), -INT32_C(   551907050),  INT32_C(   918414645), -INT32_C(   752704750), -INT32_C(  1809773214),  INT32_C(   948910349),  INT32_C(    68401189),
         INT32_C(     1704219), -INT32_C(  1193961054),  INT32_C(  1603792682), -INT32_C(   409643819),  INT32_C(  1505409271), -INT32_C(   756163387),  INT32_C(   973831445),  INT32_C(  1346248245) },
      { -INT32_C(  1051699169),  INT32_C(   460990193), -INT32_C(   361098987),  INT32_C(  1574047846), -INT32_C(  1917350712),  INT32_C(  2120197224),  INT32_C(  1471703585), -INT32_C(  1465387128),
         INT32_C(  1097463887),  INT32_C(   861725470),  INT32_C(  1528748021), -INT32_C(  1346834201), -INT32_C(   449024132),  INT32_C(   895720212), -INT32_C(  1903420666),  INT32_C(  1647719442) },
      {  INT32_C(  1252237356),  INT32_C(  2021523331), -INT32_C(  1110205482),  INT32_C(   141331595) },
      { -INT32_C(   850997113), -INT32_C(    44823098),  INT32_C(   209841317),  INT32_C(  1848434572), -INT32_C(   463968950),  INT32_C(  1758026917),  INT32_C(   115696998),  INT32_C(  1002563252),
         INT32_C(    70776615), -INT32_C(  2097231967), -INT32_C(    87622839), -INT32_C(  1840005653),  INT32_C(  2050601782), -INT32_C(   188187195),  INT32_C(  1974467753), -INT32_C(  1883434256) } },
    { {  INT32_C(   267233531),  INT32_C(  1246056516),  INT32_C(  2128138603),  INT32_C(   836767493),  INT32_C(   846955439),  INT32_C(  1504442754),  INT32_C(   538345108),  INT32_C(   103318282),
         INT32_C(  1863652651), -INT32_C(   793159067),  INT32_C(   827232812),  INT32_C(  1348677281),  INT32_C(   880991921),  INT32_C(  1821191639), -INT32_C(  1232297044),  INT32_C(  1388098598) },
      UINT16_C(53961),
      {  INT32_C(  2066493121),  INT32_C(  1292720382), -INT32_C(   310661494), -INT32_C(  2134168066), -INT32_C(   290544799), -INT32_C(  1684973041), -INT32_C(   850413552), -INT32_C(   878766070),
         INT32_C(  1145490246), -INT32_C(  1366207708), -INT32_C(     6615807), -INT32_C(  1686084038),  INT32_C(   411643401), -INT32_C(  1733092728), -INT32_C(   597359918),  INT32_C(  1621623834) },
      { -INT32_C(   190452016),  INT32_C(  1134704194),  INT32_C(  2101558595), -INT32_C(  1390885981),  INT32_C(  2042995185), -INT32_C(  1911457348), -INT32_C(  1771341957),  INT32_C(  1274418043),
         INT32_C(  1128241921),  INT32_C(   361226706), -INT32_C(  1030501858),  INT32_C(  2121247629),  INT32_C(   167195725),  INT32_C(   697764013), -INT32_C(    71368065),  INT32_C(   390509845) },
      {  INT32_C(   593135185), -INT32_C(  2043092633),  INT32_C(   944294827), -INT32_C(   994658441), -INT32_C(  1714573845),  INT32_C(   901932214),  INT32_C(  2083553639), -INT32_C(  2020378826),
         INT32_C(  1688923901),  INT32_C(  2078991311),  INT32_C(   632500910), -INT32_C(   706123031), -INT32_C(   848382441), -INT32_C(  2113720293), -INT32_C(   402771023), -INT32_C(  1485860182) },
      {  INT32_C(  1326193024), -INT32_C(  1412761860),  INT32_C(   315653673), -INT32_C(     1590552), -INT32_C(  1949477520),  INT32_C(   906875013), -INT32_C(  1373762557),  INT32_C(   508923294),
        -INT32_C(  1553112666), -INT32_C(  2125580200), -INT32_C(  1634525514),  INT32_C(  1235057624),  INT32_C(  1456761552),  INT32_C(  1049420346), -INT32_C(  1930646802), -INT32_C(   559267529) },
      { -INT32_C(    75425885),  INT32_C(    92065615), -INT32_C(   962392083),  INT32_C(  1527726474) },
      {  INT32_C(  1477176086),  INT32_C(  1246056516),  INT32_C(  2128138603), -INT32_C(   826516308),  INT32_C(   846955439),  INT32_C(  1504442754),  INT32_C(   601616227),  INT32_C(   697946240),
         INT32_C(  1863652651),  INT32_C(   369833062),  INT32_C(   827232812),  INT32_C(  1348677281),  INT32_C(   219675344),  INT32_C(  1821191639), -INT32_C(  1536783177),  INT32_C(  1782741980) } },
    { { -INT32_C(   424549461), -INT32_C(  1289470523),  INT32_C(   524226792), -INT32_C(   184686255),  INT32_C(  1357872641),  INT32_C(   995519309),  INT32_C(    84015483), -INT32_C(   429912006),
        -INT32_C(  1177808397),  INT32_C(   929886287),  INT32_C(  1364634624), -INT32_C(  1773775723),  INT32_C(   552023506),  INT32_C(   475741601),  INT32_C(  1898011702),  INT32_C(  1599570540) },
      UINT16_C( 9107),
      { -INT32_C(  2062294504),  INT32_C(  1882264345), -INT32_C(  1429944732),  INT32_C(  1155569245),  INT32_C(   293700022), -INT32_C(  1100105827),  INT32_C(  2134956328),  INT32_C(  1369625657),
        -INT32_C(   791235146),  INT32_C(   759171016),  INT32_C(   735511758),  INT32_C(  1366275994), -INT32_C(   714936264), -INT32_C(   795553625), -INT32_C(   498084695),  INT32_C(  1597305512) },
      {  INT32_C(  1882131111), -INT32_C(   526553326),  INT32_C(   218854515),  INT32_C(  1683913260),  INT32_C(   289063274),  INT32_C(   987877009),  INT32_C(  1260204450), -INT32_C(   894807773),
         INT32_C(  1832573275), -INT32_C(  1152526520),  INT32_C(  2026395724),  INT32_C(  1021061074),  INT32_C(  2035160808), -INT32_C(  2018299932), -INT32_C(  2083336096),  INT32_C(  2102295585) },
      { -INT32_C(  1645574059), -INT32_C(  1403504544),  INT32_C(  1663312016),  INT32_C(   798949447), -INT32_C(    72815337),  INT32_C(  2105695261),  INT32_C(  1308709932),  INT32_C(   634081232),
         INT32_C(   935507415),  INT32_C(  2128812781), -INT32_C(  2099181765),  INT32_C(   531791880), -INT32_C(  1961207186), -INT32_C(   485974602), -INT32_C(  1036973583),  INT32_C(   820509784) },
      { -INT32_C(  1620596047), -INT32_C(    14857276),  INT32_C(  1518534226), -INT32_C(   327601026),  INT32_C(  1165464718),  INT32_C(   573079601), -INT32_C(   488351351),  INT32_C(   101895253),
         INT32_C(   983923062),  INT32_C(   389726916),  INT32_C(  1064418496),  INT32_C(  2116807664), -INT32_C(  1329355905), -INT32_C(  1395463389), -INT32_C(  1718700220), -INT32_C(   106913661) },
      { -INT32_C(   567065318), -INT32_C(   923439864),  INT32_C(   419915561), -INT32_C(   778554542) },
      {  INT32_C(  1442012917),  INT32_C(   383363578),  INT32_C(   524226792), -INT32_C(   184686255), -INT32_C(   691122320),  INT32_C(   995519309),  INT32_C(    84015483), -INT32_C(   917233015),
        -INT32_C(  1498127163), -INT32_C(   569990241),  INT32_C(  1364634624), -INT32_C(  1773775723),  INT32_C(   552023506),  INT32_C(  2040540073),  INT32_C(  1898011702),  INT32_C(  1599570540) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i src = simde_mm512_loadu_epi32(test_vec[i].src);
    simde__m512i a0 = simde_mm512_loadu_epi32(test_vec[i].a0);
    simde__m512i a1 = simde_mm512_loadu_epi32(test_vec[i].a1);
    simde__m512i a2 = simde_mm512_loadu_epi32(test_vec[i].a2);
    simde__m512i a3 = simde_mm512_loadu_epi32(test_vec[i].a3);
    simde__m128i b = simde_x_mm_loadu_epi32(test_vec[i].b);
    simde__m512i r = simde_mm512_mask_4dpwssd_epi32(src, test_vec[i].k, a0, a1, a2, a3, &b);
    simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i src = simde_test_x86_random_i32x16();
    simde__mmask16 k = simde_test_x86_random_mmask16();
    simde__m512i a0 = simde_test_x86_random_i32x16();
    simde__m512i a1 = simde_test_x86_random_i32x16();
    simde__m512i a2 = simde_test_x86_random_i32x16();
    simde__m512i a3 = simde_test_x86_random_i32x16();
    simde__m128i b = simde_test_x86_random_i32x4();
    simde__m512i r = simde_mm512_mask_4dpwssd_epi32(src, k, a0, a1, a2, a3, &b);

    simde_test_x86_write_i32x16(2, src, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_mmask16(2, k, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a0, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a1, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a2, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a3, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_maskz_4dpwssd_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const simde__mmask16 k;
    const int32_t src[16];
    const int32_t a0[16];
    const int32_t a1[16];
    const int32_t a2[16];
    const int32_t a3[16];
    const int32_t b[4];
    const int32_t r[16];
  } test_vec[] = {
    { UINT16_C(23510),
      {  INT32_C(  1397225857),  INT32_C(   873106341), -INT32_C(   975925979), -INT32_C(  1173688698), -INT32_C(  1037626675), -INT32_C(   500608549),  INT32_C(    34962282), -INT32_C(   849417396),
        -INT32_C(  1977506332),  INT32_C(  1438526256),  INT32_C(  1058706105),  INT32_C(  1324950913),  INT32_C(   303046967), -INT32_C(   587908494),  INT32_C(    48171701), -INT32_C(   623952394) },
      {  INT32_C(   308605154), -INT32_C(   714595812),  INT32_C(   907313845), -INT32_C(   544993625), -INT32_C(  1578003409), -INT32_C(  2072123698), -INT32_C(   410624783),  INT32_C(  2076267929),
         INT32_C(  1653483078), -INT32_C(    46664120),  INT32_C(   540232568), -INT32_C(  1996507303),  INT32_C(   438956108), -INT32_C(   929126441), -INT32_C(  1649466365), -INT32_C(  1072140166) },
      { -INT32_C(   551377258),  INT32_C(   366762396), -INT32_C(    30076764),  INT32_C(   327562439), -INT32_C(    80826332),  INT32_C(  1522781271),  INT32_C(  1811378929),  INT32_C(  2032865507),
         INT32_C(  1398295990),  INT32_C(  1248343462),  INT32_C(   206085445), -INT32_C(   182399023), -INT32_C(   688828801),  INT32_C(   187741210),  INT32_C(   175515687), -INT32_C(   293363400) },
      { -INT32_C(  1807622930),  INT32_C(  1457498385),  INT32_C(   392308550),  INT32_C(  1963819766), -INT32_C(   347341104), -INT32_C(   638157646), -INT32_C(   589075036), -INT32_C(    37066994),
         INT32_C(  1418792003), -INT32_C(    55938891), -INT32_C(  1911354216),  INT32_C(  1594105999), -INT32_C(   783659234),  INT32_C(  1873428939), -INT32_C(  1135898962),  INT32_C(   951654133) },
      { -INT32_C(   678671582),  INT32_C(  1406351035), -INT32_C(   773658814),  INT32_C(   640804359),  INT32_C(    32996149),  INT32_C(  1785766332),  INT32_C(   606583855), -INT32_C(   195239726),
        -INT32_C(   406067157),  INT32_C(  1631231774), -INT32_C(  1926095738),  INT32_C(   951280386), -INT32_C(  1690719521),  INT32_C(  2064034124),  INT32_C(   933244261),  INT32_C(   959183885) },
      {  INT32_C(    52492261),  INT32_C(   476338838),  INT32_C(  2041157495), -INT32_C(   642687494) },
      {  INT32_C(           0),  INT32_C(  1158094231),  INT32_C(   445124539),  INT32_C(           0),  INT32_C(   296320555),  INT32_C(           0), -INT32_C(   570813021),  INT32_C(   316426631),
         INT32_C(  1800425769),  INT32_C(   281146543),  INT32_C(           0),  INT32_C(  1714718027),  INT32_C(   429761665),  INT32_C(           0),  INT32_C(   787682556),  INT32_C(           0) } },
    { UINT16_C(59911),
      {  INT32_C(  2073318261),  INT32_C(  1873344975),  INT32_C(  1550562609),  INT32_C(   240341230), -INT32_C(  1201018540), -INT32_C(  1353719803),  INT32_C(   185354841), -INT32_C(  1728769245),
         INT32_C(   907250023), -INT32_C(  1264206973),  INT32_C(  1594888305), -INT32_C(  1251056543),  INT32_C(  1399707469),  INT32_C(   268615095),  INT32_C(   706416135), -INT32_C(  2000482015) },
      {  INT32_C(   499046042),  INT32_C(    64054162), -INT32_C(   714939788), -INT32_C(  1819619258),  INT32_C(  1592194983), -INT32_C(  1150293836),  INT32_C(   417762038),  INT32_C(   916498843),
         INT32_C(   290676607),  INT32_C(   907290050),  INT32_C(  1292596999), -INT32_C(   270494393),  INT32_C(  1095616397), -INT32_C(  1493320529), -INT32_C(   490806457),  INT32_C(   186146444) },
      { -INT32_C(  2145555267), -INT32_C(  1732890223), -INT32_C(   253377880), -INT32_C(   455097001),  INT32_C(  1009134732),  INT32_C(   820126697), -INT32_C(  1844273146), -INT32_C(  1130550274),
         INT32_C(   675068567), -INT32_C(  1799294228),  INT32_C(   210019764), -INT32_C(   135240854),  INT32_C(  2033391248),  INT32_C(  1068045625), -INT32_C(  1278100555),  INT32_C(  2104455142) },
      {  INT32_C(   363178793),  INT32_C(  1386898846),  INT32_C(  1969106442),  INT32_C(   577523602), -INT32_C(  1617191067),  INT32_C(  1776174260), -INT32_C(   434327297),  INT32_C(  1214483487),
        -INT32_C(   715257545),  INT32_C(  2032666734), -INT32_C(   923892170),  INT32_C(  1005214421), -INT32_C(  1378187783), -INT32_C(   921257783), -INT32_C(  2018561432), -INT32_C(   154135874) },
      { -INT32_C(  1966395877),  INT32_C(  1812198198),  INT32_C(  1328935290),  INT32_C(  1149902667),  INT32_C(  1861313701), -INT32_C(  2059991267), -INT32_C(   133306823),  INT32_C(   351198713),
         INT32_C(  1100921099),  INT32_C(   665690541), -INT32_C(   579411310), -INT32_C(  1491009278), -INT32_C(  2112548251),  INT32_C(  1393052953),  INT32_C(   743118131), -INT32_C(    46056974) },
      { -INT32_C(  1623269390),  INT32_C(   331803521), -INT32_C(   789496370), -INT32_C(  1552477634) },
      { -INT32_C(   354560687), -INT32_C(  2044013734),  INT32_C(  1629227175),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),
         INT32_C(           0), -INT32_C(  1998392527),  INT32_C(           0),  INT32_C(   196489071),  INT32_C(           0),  INT32_C(  1303841081), -INT32_C(   898466369),  INT32_C(   521458675) } },
    { UINT16_C(35877),
      {  INT32_C(   785989158), -INT32_C(   599585391),  INT32_C(  2048210233),  INT32_C(  1884948530),  INT32_C(  1851513767), -INT32_C(   542430738),  INT32_C(  1894967801), -INT32_C(  1292036212),
        -INT32_C(   404695467),  INT32_C(   499327971), -INT32_C(  1969759912), -INT32_C(  1996819999), -INT32_C(  1141483828),  INT32_C(  2040177023),  INT32_C(   401181834), -INT32_C(   104208733) },
      { -INT32_C(  1595888963),  INT32_C(   649962445),  INT32_C(  1571837308),  INT32_C(   333884230), -INT32_C(  2133926911),  INT32_C(   150562942), -INT32_C(  1742740491), -INT32_C(  2037257783),
         INT32_C(  1613197715), -INT32_C(  1853430763), -INT32_C(  2131806407), -INT32_C(   476850718),  INT32_C(   795042225), -INT32_C(  1103602231),  INT32_C(   156718912), -INT32_C(   745478080) },
      {  INT32_C(  1865725786), -INT32_C(   721372517), -INT32_C(   749342735),  INT32_C(  1991698628),  INT32_C(   312810057), -INT32_C(  1210983049),  INT32_C(  1975527477),  INT32_C(  1783189520),
        -INT32_C(  1546027769),  INT32_C(   695786039), -INT32_C(  1896034871), -INT32_C(    33246283),  INT32_C(  1141942733), -INT32_C(  1124343417),  INT32_C(   439466761),  INT32_C(   327449100) },
      {  INT32_C(   800481015),  INT32_C(    22556216), -INT32_C(  1332783877), -INT32_C(   726756601), -INT32_C(  1005011139), -INT32_C(  1434446944), -INT32_C(   607866417),  INT32_C(   602818604),
        -INT32_C(   565008986), -INT32_C(   807359789),  INT32_C(   109015039),  INT32_C(  1088105987), -INT32_C(  1929055251), -INT32_C(   701004793),  INT32_C(  1639054133), -INT32_C(   360341692) },
      {  INT32_C(   415881028), -INT32_C(  2115524222),  INT32_C(   461858328), -INT32_C(  2124717420),  INT32_C(  1561288534),  INT32_C(   422790883), -INT32_C(  2038766526), -INT32_C(   932118653),
         INT32_C(  1507867095), -INT32_C(    69548062), -INT32_C(  1038720723),  INT32_C(   440627908), -INT32_C(  1250471215), -INT32_C(   607212903),  INT32_C(   291588238),  INT32_C(   534368584) },
      { -INT32_C(   310855413), -INT32_C(  1360506240),  INT32_C(  2003894195),  INT32_C(  1116844913) },
      { -INT32_C(   938695927),  INT32_C(           0), -INT32_C(  1773481120),  INT32_C(           0),  INT32_C(           0),  INT32_C(   909969848),  INT32_C(           0),  INT32_C(           0),
         INT32_C(           0),  INT32_C(           0),  INT32_C(   228520683),  INT32_C(   476577442),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(   510841049) } },
    { UINT16_C( 2054),
      { -INT32_C(   978149385), -INT32_C(   619822982),  INT32_C(   732714578), -INT32_C(   303712395), -INT32_C(  1925225051), -INT32_C(  2087914989), -INT32_C(    80216726),  INT32_C(   923024704),
         INT32_C(  1459467996),  INT32_C(  1227951095), -INT32_C(   696984223),  INT32_C(   985880981), -INT32_C(   758709569),  INT32_C(  1582716148), -INT32_C(  1856336559), -INT32_C(  1496752438) },
      {  INT32_C(   201115156),  INT32_C(   844377553), -INT32_C(  1626814198), -INT32_C(   505820382), -INT32_C(  1045126707),  INT32_C(  1176505077),  INT32_C(  1641577111), -INT32_C(   335044136),
         INT32_C(   955777895),  INT32_C(   980044848),  INT32_C(   953840149),  INT32_C(   169456445),  INT32_C(  1238093140),  INT32_C(  1854991319),  INT32_C(  1037002853),  INT32_C(  1881855497) },
      {  INT32_C(   162013913), -INT32_C(  2075913618), -INT32_C(  1044636028),  INT32_C(   650892753),  INT32_C(  2054133411), -INT32_C(   404095102),  INT32_C(  1881520231),  INT32_C(  1759530895),
        -INT32_C(   546142095),  INT32_C(   509851290), -INT32_C(  1512103980), -INT32_C(  1731482891), -INT32_C(  1022215359), -INT32_C(  1565852870),  INT32_C(  1125306292), -INT32_C(  1884556514) },
      {  INT32_C(   376380795), -INT32_C(  1489710381), -INT32_C(   414378766), -INT32_C(     8447810), -INT32_C(  1899851437),  INT32_C(  1093692813),  INT32_C(  1535394364), -INT32_C(  1310052555),
         INT32_C(   549935437),  INT32_C(   516487980), -INT32_C(   838527729), -INT32_C(  2117237715), -INT32_C(  1576038379),  INT32_C(   971194365), -INT32_C(  1215010943), -INT32_C(   462913641) },
      {  INT32_C(    67383256),  INT32_C(   975359018),  INT32_C(   252192737), -INT32_C(  1047472725),  INT32_C(  1650696037),  INT32_C(  1604077534),  INT32_C(  1159082158), -INT32_C(  2010546513),
        -INT32_C(   661901651), -INT32_C(   602755078), -INT32_C(  2098521386),  INT32_C(  1430485999), -INT32_C(   122182118), -INT32_C(  1671998483),  INT32_C(   870411908), -INT32_C(  1699017748) },
      {  INT32_C(   863127609), -INT32_C(   854620937), -INT32_C(  1924138338), -INT32_C(  1880976779) },
      {  INT32_C(           0), -INT32_C(  1199910029),  INT32_C(  2087129462),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),
         INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(   174400579),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0) } },
    { UINT16_C(39481),
      { -INT32_C(   538106233), -INT32_C(  1538428478),  INT32_C(  1622096293),  INT32_C(  1168697555),  INT32_C(   734633755), -INT32_C(  1138399379), -INT32_C(   682648587), -INT32_C(  1301182422),
         INT32_C(  1905352622),  INT32_C(  1964367568), -INT32_C(   338246633), -INT32_C(   953123156), -INT32_C(  1947010530),  INT32_C(  1447499873), -INT32_C(   584149325), -INT32_C(   846225634) },
      { -INT32_C(   818011906),  INT32_C(   373576702), -INT32_C(  1023337961), -INT32_C(  1215680103), -INT32_C(  1925022421),  INT32_C(  1222871445),  INT32_C(  1042616608), -INT32_C(  1358187087),
        -INT32_C(   729921067), -INT32_C(  1276460132),  INT32_C(  1987505117),  INT32_C(  1210908956),  INT32_C(   332754814),  INT32_C(   425441529),  INT32_C(  2069332170),  INT32_C(   187327285) },
      {  INT32_C(  1239394732),  INT32_C(  1241303404), -INT32_C(   792693836), -INT32_C(   233247372),  INT32_C(  1443229021),  INT32_C(  1886347430),  INT32_C(   384550624), -INT32_C(   702474967),
         INT32_C(   706674878),  INT32_C(  2104761289),  INT32_C(    38614158),  INT32_C(  2129946145), -INT32_C(   103483053),  INT32_C(   979977049),  INT32_C(   860902410),  INT32_C(   671707498) },
      {  INT32_C(   978528369), -INT32_C(   759707836),  INT32_C(   483722491), -INT32_C(  1097086614),  INT32_C(   481783747), -INT32_C(  1118428749), -INT32_C(   537876875), -INT32_C(  2012677609),
         INT32_C(  1724013346),  INT32_C(   490305826), -INT32_C(   398913922), -INT32_C(  1700342569), -INT32_C(   138977724), -INT32_C(   189526657), -INT32_C(   875256652), -INT32_C(  1051403106) },
      {  INT32_C(  1495733815),  INT32_C(   242638992),  INT32_C(  1190571886), -INT32_C(   924803708),  INT32_C(  2059376635),  INT32_C(  1500410789), -INT32_C(  1239137769),  INT32_C(  1433892894),
         INT32_C(   531537551),  INT32_C(  1831675135),  INT32_C(  1488135124), -INT32_C(  1155492672), -INT32_C(   801775829),  INT32_C(  1764336722),  INT32_C(    85937894),  INT32_C(  1432000198) },
      {  INT32_C(   880019765),  INT32_C(    27369773), -INT32_C(  2057742907),  INT32_C(   339835369) },
      { -INT32_C(  1701437429),  INT32_C(           0),  INT32_C(           0), -INT32_C(   366754954), -INT32_C(  1821080743),  INT32_C(  1099787046),  INT32_C(           0),  INT32_C(           0),
         INT32_C(           0), -INT32_C(   303243172),  INT32_C(           0), -INT32_C(   266084822),  INT32_C(  1248880520),  INT32_C(           0),  INT32_C(           0), -INT32_C(   114760546) } },
    { UINT16_C(30296),
      {  INT32_C(   236628709),  INT32_C(   861667604),  INT32_C(  1623859974), -INT32_C(   311820424), -INT32_C(   728852685), -INT32_C(   232172648),  INT32_C(   443224793),  INT32_C(   210813991),
        -INT32_C(  2112181394), -INT32_C(  1296664660),  INT32_C(   303202458), -INT32_C(  1291879297), -INT32_C(  1417245165), -INT32_C(  1164070687), -INT32_C(   371979838),  INT32_C(  1005938125) },
      { -INT32_C(  1128394736),  INT32_C(   560886919),  INT32_C(  1932755188),  INT32_C(   254096380), -INT32_C(  1564759103),  INT32_C(   509433947),  INT32_C(   772223329), -INT32_C(  1502937706),
        -INT32_C(  1805506547), -INT32_C(  1867132772),  INT32_C(  1292101713), -INT32_C(   597874661),  INT32_C(   796858579), -INT32_C(   766649232), -INT32_C(  1543482355),  INT32_C(  1581935185) },
      {  INT32_C(   787656082), -INT32_C(   826366083), -INT32_C(  1424178800), -INT32_C(  1115129367),  INT32_C(    32245649), -INT32_C(   254592541), -INT32_C(   543894387), -INT32_C(   784474306),
         INT32_C(   167719052),  INT32_C(  1742257879),  INT32_C(  1762915455), -INT32_C(    31024275), -INT32_C(  2046881118), -INT32_C(   663366837), -INT32_C(   440989017),  INT32_C(  1974924777) },
      { -INT32_C(    58804699), -INT32_C(   211528076), -INT32_C(  1218676918), -INT32_C(  1263173102), -INT32_C(   549866092),  INT32_C(   800632456), -INT32_C(  1592496200), -INT32_C(  1994994844),
        -INT32_C(   175729279),  INT32_C(   921234155),  INT32_C(  1944929633),  INT32_C(  1546101703), -INT32_C(   532979624), -INT32_C(   955256050), -INT32_C(   949476509),  INT32_C(  1867612142) },
      { -INT32_C(    10168556),  INT32_C(   573918657),  INT32_C(  1502946194),  INT32_C(   515226822),  INT32_C(   721350940),  INT32_C(  1206980068),  INT32_C(   521099824), -INT32_C(   309436199),
        -INT32_C(   118688969), -INT32_C(   770039232),  INT32_C(   187412293), -INT32_C(  2027298453), -INT32_C(  1229903918),  INT32_C(  1694409524), -INT32_C(   696054275), -INT32_C(  1530719635) },
      {  INT32_C(  1167896325),  INT32_C(   370652881), -INT32_C(   803126683), -INT32_C(   178828765) },
      {  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(  1500144077),  INT32_C(  1044287997),  INT32_C(           0), -INT32_C(  1212303157),  INT32_C(           0),
         INT32_C(           0), -INT32_C(   750556884),  INT32_C(  1435262483),  INT32_C(           0), -INT32_C(   791503062), -INT32_C(   622987711), -INT32_C(  2014352988),  INT32_C(           0) } },
    { UINT16_C( 2161),
      { -INT32_C(  1431591508), -INT32_C(  1917343734),  INT32_C(  1100948606),  INT32_C(  1693557960),  INT32_C(     1753833), -INT32_C(    96239655), -INT32_C(  1505401265),  INT32_C(   145667676),
         INT32_C(  1722964572), -INT32_C(  2114754302),  INT32_C(  1438815117),  INT32_C(   565818167),  INT32_C(  1327616886), -INT32_C(  1589025710),  INT32_C(   659001035), -INT32_C(  1590692539) },
      {  INT32_C(  1376248143), -INT32_C(   673973686), -INT32_C(   986933875), -INT32_C(  1075387063),  INT32_C(   168691640),  INT32_C(   933975916),  INT32_C(   727642854),  INT32_C(   936152551),
        -INT32_C(  1198926994),  INT32_C(  1536122061),  INT32_C(   975223793),  INT32_C(  1492715168),  INT32_C(  2036467469),  INT32_C(  1169165663), -INT32_C(   428863745),  INT32_C(   152911003) },
      { -INT32_C(   591288817), -INT32_C(   197701630), -INT32_C(  1423026421),  INT32_C(  1795369053), -INT32_C(  1897634513),  INT32_C(  1909691762),  INT32_C(  1062749091), -INT32_C(  1907853953),
         INT32_C(   510331420),  INT32_C(  1712497242),  INT32_C(  1460748794), -INT32_C(  1732110999), -INT32_C(   316168326), -INT32_C(   547423684), -INT32_C(  1122060738),  INT32_C(  1212966700) },
      { -INT32_C(   882460815),  INT32_C(  1395751257),  INT32_C(   598426554), -INT32_C(   759468712),  INT32_C(  1354752532),  INT32_C(   456138461),  INT32_C(    14175956),  INT32_C(   642262197),
         INT32_C(   905097179), -INT32_C(   494394584), -INT32_C(  1106955418), -INT32_C(  1248739167), -INT32_C(  2147069789),  INT32_C(  1134245486),  INT32_C(   977499012),  INT32_C(  1935707288) },
      {  INT32_C(  1671975483), -INT32_C(   599445130),  INT32_C(    94063204), -INT32_C(  1380242422), -INT32_C(   349322884),  INT32_C(  2066663671), -INT32_C(   726306500),  INT32_C(   944183037),
        -INT32_C(   560205720), -INT32_C(  2051284959),  INT32_C(   898324010), -INT32_C(    18725246), -INT32_C(    18280441),  INT32_C(   343480280), -INT32_C(  2031603831), -INT32_C(  1379979195) },
      {  INT32_C(  1099717152),  INT32_C(  1707493179),  INT32_C(   530207133), -INT32_C(  1642234473) },
      {  INT32_C(  1920187037),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(   560048160), -INT32_C(   389506256),  INT32_C(   753591262),  INT32_C(           0),
         INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(  2104637306),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0) } },
    { UINT16_C( 1933),
      {  INT32_C(   371090844),  INT32_C(  1648732026), -INT32_C(   309163474), -INT32_C(  1018711497), -INT32_C(  1173716237), -INT32_C(  2113165336), -INT32_C(   453008442), -INT32_C(   554988479),
         INT32_C(  1827932658), -INT32_C(   540132943), -INT32_C(    87268925),  INT32_C(   129897235),  INT32_C(  2126629014),  INT32_C(   906022000), -INT32_C(  1323696017),  INT32_C(  2123302284) },
      { -INT32_C(  1058372849),  INT32_C(  2141174204),  INT32_C(   762931994),  INT32_C(   338966398),  INT32_C(  1888679168),  INT32_C(   833000386),  INT32_C(   534954387), -INT32_C(   711036474),
        -INT32_C(  1332377356),  INT32_C(  1529820225),  INT32_C(   512338335), -INT32_C(   533545504),  INT32_C(  1968227763), -INT32_C(   341379240),  INT32_C(  2114619832), -INT32_C(   279664390) },
      {  INT32_C(  1923082545), -INT32_C(  1110520034),  INT32_C(  1490769784), -INT32_C(   952562156),  INT32_C(   725387731),  INT32_C(   941024128),  INT32_C(  1723277420), -INT32_C(    95089719),
         INT32_C(   309130740),  INT32_C(  1020279492), -INT32_C(  1500206191), -INT32_C(  1938960967), -INT32_C(   675829161), -INT32_C(   116339315), -INT32_C(  1218459666), -INT32_C(   961432110) },
      {  INT32_C(  1859722666), -INT32_C(   374691496),  INT32_C(   244268628),  INT32_C(  1671101708),  INT32_C(   876237479),  INT32_C(   221071903), -INT32_C(   473658351), -INT32_C(   341150399),
        -INT32_C(   346455149), -INT32_C(  2133589204),  INT32_C(  1317954626),  INT32_C(   145828193), -INT32_C(  1707283589),  INT32_C(  1202219318),  INT32_C(   925592821),  INT32_C(  1965217250) },
      { -INT32_C(  2074051496), -INT32_C(  1056689025), -INT32_C(   116419688),  INT32_C(   922861756), -INT32_C(   489603668), -INT32_C(  1675003482), -INT32_C(   925674266), -INT32_C(  2126645975),
        -INT32_C(   251290255),  INT32_C(  1790053073),  INT32_C(  1499710109),  INT32_C(   781215106),  INT32_C(  1225810338), -INT32_C(  1041941797), -INT32_C(  1198933874),  INT32_C(   523880109) },
      {  INT32_C(   873480035), -INT32_C(   425803191),  INT32_C(   121569924),  INT32_C(   154521447) },
      {  INT32_C(   238588751),  INT32_C(           0), -INT32_C(   779908484),  INT32_C(   838578599),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(  1962461513),
        -INT32_C(  1759180061), -INT32_C(  2001127192),  INT32_C(   189807726),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i src = simde_mm512_loadu_epi32(test_vec[i].src);
    simde__m512i a0 = simde_mm512_loadu_epi32(test_vec[i].a0);
    simde__m512i a1 = simde_mm512_loadu_epi32(test_vec[i].a1);
    simde__m512i a2 = simde_mm512_loadu_epi32(test_vec[i].a2);
    simde__m512i a3 = simde_mm512_loadu_epi32(test_vec[i].a3);
    simde__m128i b = simde_x_mm_loadu_epi32(test_vec[i].b);
    simde__m512i r = simde_mm512_maskz_4dpwssd_epi32(test_vec[i].k, src, a0, a1, a2, a3, &b);
    simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__mmask16 k = simde_test_x86_random_mmask16();
    simde__m512i src = simde_test_x86_random_i32x16();
    simde__m512i a0 = simde_test_x86_random_i32x16();
    simde__m512i a1 = simde_test_x86_random_i32x16();
    simde__m512i a2 = simde_test_x86_random_i32x16();
    simde__m512i a3 = simde_test_x86_random_i32x16();
    simde__m128i b = simde_test_x86_random_i32x4();
    simde__m512i r = simde_mm512_maskz_4dpwssd_epi32(k, src, a0, a1, a2, a3, &b);

    simde_test_x86_write_mmask16(2, k, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i32x16(2, src, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a0, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a1, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a2, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, a3, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

SIMDE_TEST_FUNC_LIST_BEGIN
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_4dpwssd_epi32)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_4dpwssd_epi32)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_4dpwssd_epi32)
SIMDE_TEST_FUNC_LIST_END

#include <test/x86/avx512/test-avx512-footer.h>
